package com.ywu.bpmn.flow.data;

import com.ywu.bpmn.flow.dto.YwuFlowDefinitionDto;
import com.ywu.bpmn.flow.entity.YwuFlowDefinitionEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface YwuFlowDefinitionRepository {
    void insert(@Param("model")YwuFlowDefinitionEntity entity);

    void updateMetadata(@Param("model")YwuFlowDefinitionEntity entity);

    void updateFlowJson(@Param("model")YwuFlowDefinitionEntity entity);

    void updateVersionInfo(@Param("model")YwuFlowDefinitionEntity entity);

    void updateAll(@Param("model")YwuFlowDefinitionEntity entity);

    void delete(@Param("model")YwuFlowDefinitionEntity entity);

    YwuFlowDefinitionEntity getEntity(@Param("model")YwuFlowDefinitionEntity entity);

    YwuFlowDefinitionEntity getEntityNoJson(@Param("model")YwuFlowDefinitionEntity entity);

    int queryCount(@Param("model")YwuFlowDefinitionDto dto);

    List<YwuFlowDefinitionEntity> queryPageList(@Param("model") YwuFlowDefinitionDto dto);
}
